A MIMO system typically includes a plurality of antennas, each antenna coupled to an RF front end for mixing to a baseband signal stream, each baseband signal stream coupled to an analog to digital converter (ADC). Each ADC output is coupled to an automatic gain control (AGC) and also to a timing and frequency synchronization, and to an FFT for conversion of received symbols into associated subcarriers. A channel estimation provides per-subcarrier compensation of the FFT responses, and the FFT outputs are provided to an equalizer and to a log likelihood ratio (LLR) for decoding into received symbols. MIMO stream decoding often uses a QR Decomposition (QRD), whereby the channel estimation H matrix is decomposed into a Q and R matrix with the property that H=Q*R where Q is an upper triangular unitary matrix with real diagonal elements. The QR decomposition is then used by the MIMO decoder to demodulate the received subcarriers across the plurality of receive streams into streams of data.
FIG. 1 shows a multiple-input multiple-output (MIMO) wireless transmitter/receiver 100 for n=2 streams. MIMO transmitter 102 includes two antennas which transmit original data x1 and x2, where the antennas are typically separated by a short distance, which may be a quarter of a wavelength for the carrier frequency, or any convenient separation distance. For each separate transmit symbol stream X1, X2 the value received at receiver 104 inputs Y1 and Y2 represents the superposition of these X1 and X2 symbols according to the communications channel between each transmit antenna and receive antenna. The object of receiver 104 is to recover estimates x1 and x2 of the originally transmitted data streams x1 and x2. For a 2×2 (2 input, 2 output) transmitter/receiver pair, the H matrix channels for input y1 are h11 and h12, and the channels for input y2 are h12 and h22.
FIG. 2 shows the matrix equations of operation for the receiver of FIG. 1, where H is known as the channel estimate matrix, and is populated with channel characteristic values determined during a preamble interval.
FIG. 3 shows a 3×3 MIMO transmitter/receiver link, where transmitter 302 includes three transmit antennas and receiver 204 includes three receive antennas. The respective communications channels for input y1, y2, and y3 are {h11, h12, h13}, {h21, h22, h23}, and {h31, h32, h33}. Each transmit symbol stream X1, X2, X3 typically carries a unique stream of data, and the objective of the MIMO receiver 304 is to segregate and recover each stream of data in the form of a hard decision representing the most likely transmitted value, and a soft decision representing the certainty of each bit of the hard decision. FIG. 4 shows the matrix equations for the transmitter and receiver of FIG. 3. As before, Y is the transmitted value, H is the channel estimate matrix, X is the received value, and N is the channel noise.
For clarity of terminology, the number of spatial streams is the number of unique streams that are transmitted from the transmitter (one in SIMO or more than one in MIMO). The number of receive streams is equal to the number of receive antennas present at the receiver, and each receive stream is coupled to an associated FFT. For example, for 1×N (SIMO), there is 1 stream of data transmitted from 1 transmit antenna and received by N receive antennas, providing a system with one spatial stream and N receive streams. For 2×3 MIMO, the number of spatial streams is 2 and the number of receive streams is 3. It is also possible to support fewer than the maximum number of spatial streams by duplicating streams in separate transmit antennas, such as in a 3×3 MIMO system with three transmit antennas and three receive streams/antennas, but where the transmitter generates only two unique spatial streams, which are mapped to three transmit antennas by transmitting the first spatial stream in the first transmit antenna, and the second spatial stream in the second as well as in the third transmit antenna. The maximum data rate of this 3×3 system will be the same as the maximum rate of the 2×3 system since only two unique spatial streams of data are transmitted by the transmitter for each system.
FIG. 5 shows a transformation which is useful for separating spatially coded streams of symbol data containing x1 and x2 into their separated constituent values. Equation 5.1 is the previously described receiver equation, and equation 5.2 introduces the QR transformation, where the matrix R is in the form of an upper triangular matrix. The H channel characteristic matrix is decomposed into a unitary Q matrix and an R matrix such that H=Q*R and, when substituted into the receiver equation 5.1, generates equation 5.2. Equation 5.3 shows the multiplication by QH (QH indicating the hermitian matrix of Q, whereby the unitary property of matrix Q results in QHQ=I the diagonal identity matrix). As Q is a unitary matrix, the channel noise represented by N is unchanged after multiplication by QH. The R matrix is an upper triangular matrix with the property that the main diagonal elements are purely real quantities, whereas the upper triangular entries above the main diagonal may be complex. This transformation results in the matrix form of equation 5.7, which produces equation 5.9 which is reduced to one x2 variable, and equation 5.8 which has both x1 and x2 variables. By transforming the received Y values into Z values through multiplication by QH, it is possible to directly solve equation 5.9 for the x2 value using a metric such as minimum distance from z2. It is then possible to substitute this value x2 into equation 5.8 with z1 to solve for x1. The noise terms of equation 5.7 are ignored, as they represent non-deterministic values forming the expanded square regions 604 around possible symbol points 602 of FIG. 6.
FIG. 6 shows the constellation diagram in I and Q space for QAM-64, whereby 64 different symbols may be transmitted using the I and Q data values by using variations in amplitude and phase to place the transmitted signal into one of the constellation points. Point 602 represents an estimated transmit value x1, and region y1 604 represents a region of points which would be resolved to the most likely estimated transmit value x1.
It is desired to provide an apparatus and method for using stream noise variance to compute and apply scaling factors for use in compensating a data stream and associated equalization matrix entry, where each stream uses a scaling factor calculated for that particular stream.